package com.fandou.airobot.utils;

import java.util.Arrays;
import java.util.List;

/**
 * @author Jm
 * @date 2020/7/13 13:37
 * @description 中文数字转阿拉伯数字
 */
public class ChineseNumberSwitcher {

    public static String getTargetChinese(String content) {
        try {
            String target = content.substring(content.indexOf("为") + 1, content.indexOf("分"));
            return target;
        } catch (Exception e) {
            return "";
        }
    }


    /**
     * 中文数字转阿拉伯数字【六十三万零六十一 --> 630061】
     *
     * @param chineseNumber 中文数字
     * @return 阿拉伯数字
     */
    @SuppressWarnings("unused")
    public static int chineseNumber2Int(String chineseNumber) {
        int result = 0;
        List<Character> arr = Arrays.asList('零', '一', '二', '三', '四', '五', '六',
                '七', '八', '九', '十', '百', '千', '万', '亿');
        int index = -1;

        int tmp = 1;// 存放一个单位的数字如：十万
        for (int i = 0; i < chineseNumber.length(); i++) {
            boolean b = true;// 判断是否是chArr
            char c = chineseNumber.charAt(i);
            index = arr.indexOf(c);
            switch (index) {
                case -1:// 不是数字
                    return -1;
//          break;
                case 0:// 零
                case 1:// 一
                case 2:// 二
                case 3:// 三
                case 4:// 四
                case 5:// 五
                case 6:// 六
                case 7:// 七
                case 8:// 八
                case 9:// 九
                    tmp = index;
                    break;
                case 10:// 十
                    result += tmp * 10;
                    tmp = 0;
                    break;
                case 11:// 百
                    result += tmp * 100;
                    tmp = 0;
                    break;
                case 12:// 千
                    result += tmp * 1000;
                    tmp = 0;
                    break;
                case 13:// 万
                    result += tmp;
                    result *= 10000;
                    tmp = 0;
                    break;
                case 14:// 亿
                    result += tmp;
                    result *= 100000000;
                    tmp = 0;
                    break;
                default:
                    break;
            }

            if (i == chineseNumber.length() - 1) {// 遍历到最后一个字符
                result += tmp;
            }
        }
        return result;
    }
}
